home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
taropyon
/
guilib3
/
inc
/
menu.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-11-30
|
6KB
|
200 lines
/* :*****************************************************************
: "menu.h" : system“Pride”メニュー・ライブラリ
:*****************************************************************
*/
#ifndef _MENU_H
#define _MENU_H
#ifndef _EVENT_H
# include <event.h>
#endif
#ifndef _DIALOG_H
# include <dialog.h>
#endif
#ifndef _MOUSE_H
# include <mouse.h>
#endif
extern USHORT PfKeyTbl[]; /* "pfkeytbl.c" */
extern USHORT KeyAdr_table[]; /* "keyadr.c" */
extern UINT tenKeyAdr( UINT ec );
#define SETPOS_MOSC (-1) /* 座標指定マウスカーソルを中心に */
#define SETPOS_MOS (-2) /* 座標指定マウスカーソル位置 */
#define SETPOS_CENTER (-3) /* 座標指定画面中央 */
/* "menbtn.c" ----------------------------------------------------*/
typedef struct
{
EVTSETMOS_T evtMos;
SHORT fntX, fntY;
COLOR strCol, btnCol, hilCol, shaCol;
} MNUSETBTN_T;
extern int MNU_evtSetBtn( EVT_T *evt, MNUSETBTN_T *para, CONST char *form, ... );
/* "menbtn16.c" ------------------------------------------------*/
int
SetMsgBtn( EVT_T *evt, int evt_no, int no, int attr, int btn,
int x0, int y0, int xs, int ys, int (*func)(int,EVTSBJ_T *), void *ptr,
COLOR strCol, COLOR btnCol, COLOR hilCol, COLOR shaCol, CONST char *form, ... );
/* "menbtn12.c" ------------------------------------------------*/
int
SetMsgBtn12( EVT_T *evt, int evt_no, int no, int attr, int btn,
int x0, int y0, int xs, int ys, int (*func)(int,EVTSBJ_T *), void *ptr,
COLOR strCol, COLOR btnCol, COLOR hilCol, COLOR shaCol, CONST char *form, ... );
/* "menubar.c" ----------------------------------------------------*/
typedef struct
{ int no; /* イベントNo */
USHORT ch, ec;
int (*func)(int,EVTSBJ_T *);
void *ptr;
CONST char *msg;
} MENUBAR;
EVT_T *SetMenuBar (
EVT_T *evt, int x0, int y0,
COLOR strCol, COLOR btnCol, COLOR hilCol, COLOR shaCol, int n, MENUBAR *mb
);
/* "menusel1.c" ------------------------------------------------*/
#define MNSL1_BLK (0)
#define MNSL1_MSG (1)
#define MNSL1_NOR (2)
#define MNSL1_DIG (3)
#define MNSL1_STR (4)
#define MNSL1_SEL (5)
#define MNSL1_IGN (0x80) /* 実行禁止 */
typedef struct
{ UCHAR attr; /* 属性 */
char key; /* ショートカットキー */
char *msg; /* メッセージ */
void *para; /* メッセージパラメータポインタ */
int no; /* コマンドNo */
int (*func)(); /* 実行関数 */
void *ptr; /* 汎用ポインタ */
} MENUSL1_OBJ;
#define MNSL1_EXIT (1) /* EXIT ボタン付 */
#define MNSL1_LOOP (2) /* LOOP フラグ */
typedef struct
{ DLGBOX fr;
int attr;
int n;
int sel;
char *title;
MENUSL1_OBJ *obj;
EVT_WORK *evt;
} MENUSL1;
int MENU_sel1_move( int evtNo, EVTSBJ_T *sbj);
void MENU_sel1_draw( DLG *dlg );
int MENU_sel1( MENUSL1 *mn, int attr, int x, int y, CONST char *title );
/* "menusub1.c" ------------------------------------------------*/
void MENU_guideline( int x0, int y0, int xs, int ys, int ctil, int cbox );
void MENU_dspTitle( int x0, int y0, int xs, int ys, int ctil, int cbox, int cstr, CONST char *form, ... );
/* "menuwait.c" ------------------------------------------------*/
int MENU_wait( UINT sec );
/* "selbtn.c" ----------------------------------------------------*/
typedef struct
{ UINT attr; /* 属性 */
char *msg; /* ボタンメッセージ */
USHORT ch; /* 対応キーコード */
USHORT ec; /* 対応キーアドレス */
int evtNo; /* リターンイベントNO */
int (*func)(); /* 実行関数 */
void *ptr; /* 汎用ポインタ */
} SELBTNOBJ_T;
int MENU_selectBtn(
int x0, int y0, COLOR strCol, COLOR bacCol, COLOR boxCol, int attr,
int btnNum, SELBTNOBJ_T *btnObj, CONST char *msg, ... );
int MENU_sure (
int x0, int y0, COLOR strCol, COLOR bacCol, COLOR boxCol, int attr,
CONST char *msg, ... );
#define MENU_SURE_OK (1)
#define SELBTN_ATT_LEFT (0) /* 左詰め表示 */
#define SELBTN_ATT_CENTER (1) /* メッセージのセンタリング */
/* "mnu010.c" ------------------------------------------------*/
#define MNU_BLK (0)
#define MNU_MSG (1)
#define MNU_NOR (2)
#define MNU_DIG (3)
#define MNU_STR (4)
#define MNU_SEL (5)
#define MNU_IGN (0x80) /* 実行禁止 */
typedef struct
{ USHORT attr; /* 属性 */
SHORT key; /* ショートカットキー */
CONST char *msg; /* メッセージ */
void *para; /* メッセージパラメータポインタ */
int no; /* コマンドNo */
int (*func)(); /* 実行関数 */
void *ptr; /* 汎用ポインタ */
} MNUOBJ_T;
#define MNUATT_EXIT (1) /* EXIT ボタン付 */
#define MNUATT_LOOP (2) /* LOOP フラグ */
typedef struct
{
DLG_T *dlg;
MOSTKP *mosTk;
EVT_T *evt;
int attr;
int n;
int sel;
char *title;
MNUOBJ_T *obj;
COLOR colTbl[8];
} MNU_T;
int MNU_start( MNU_T *mnu );
MNU_T *MNU_open(int x0, int y0, int attr, int n, MNUOBJ_T *obj, CONST char *title, ... );
int MNU_close( MNU_T *mnu );
/* "syslin.c" ----------------------------------------------------*/
typedef struct _sylpf_t /* ファンクションキー設定構造体 */
{ int shift; /* シフトモード */
char msg[10]; /* メッセージ */
int evtNo;
int (*func)();
void *ptr;
} SYLPF_T;
typedef struct _syl_t
{ struct _syl_t *prev;
int page; /* 書き込みページ */
int mode; /* 表示モード */
GBLK *gbuf; /* VRAM退避用バッファ */
SYLPF_T *pfKey[12*4];
EVT_T *evtKey;
EVT_T *evtMos;
} SYL_T;
#define SYLKEY_SHIFT_OFF (0)
#define SYLKEY_SHIFT (1)
#define SYLKEY_CTRL (2)
#define SYLKEY_SHIFT_CTRL (3)
void SYL_clear(void);
void SYL_puts( COLOR strCol, char *msg, ... );
SYL_T *SYL_open(EVT_T *basEvt);
void SYL_close( SYL_T *syl );
void SYL_dspPf( SYL_T *syl, int shift, int pfno );
int SYL_getkey(SYL_T *syl, UINT *ec );
int SYL_setPfkey( SYL_T *syl, int pfno, int shift, char *msg, int evtNo, int (*func)(), void *ptr );
#endif